package com.ruoyi.kanban.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;
//import com.ruoyi.common.annotation.Excel;
// import io.swagger.annotations.ApiModelProperty;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("supply_framework")
public class SupplyFramework extends BaseEntity {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("framework_code")
    private String frameworkCode;

    // 基础信息
    @TableField("receiver_company_id")
    private Long receiverCompanyId;

    @TableField("receiver_company_name")
    private String receiverCompanyName;

    @TableField("sender_company_id")
    private Long senderCompanyId;

    @TableField("sender_company_name")
    private String senderCompanyName;

    @TableField("receiver_dept_id")
    private Long receiverDeptId;

    @TableField("receiver_dept_name")
    private String receiverDeptName;

    @TableField("sender_dept_id")
    private Long senderDeptId;

    @TableField("sender_dept_name")
    private String senderDeptName;

    @TableField("receiver_warehouse_id")
    private String receiverWarehouseId;

    @TableField("sender_warehouse_id")
    private String senderWarehouseId;

    @TableField("receiver_warehouse_name")
    private String receiverWarehouseName;

    @TableField("sender_warehouse_name")
    private String senderWarehouseName;

    @TableField("receiver_contact")
    private String receiverContact;

    @TableField("receiver_phone")
    private String receiverPhone;

    @TableField("sender_contact")
    private String senderContact;

    @TableField("sender_phone")
    private String senderPhone;

    // 业务配置
    @TableField("lead_time_hours")
    private Integer leadTimeHours;

    @TableField("printer_id")
    private String printerId;

    @TableField("box_label_template")
    private String boxLabelTemplate;

    @TableField("kanban_template")
    private String kanbanTemplate;

    // 权限控制
    @TableField("need_sender_confirm_framework")
    private Integer needSenderConfirmFramework;

    @TableField("need_sender_confirm_kanban")
    private Integer needSenderConfirmKanban;

    @TableField("delivery_as_receipt")
    private Integer deliveryAsReceipt;

    @TableField("scan_requirement")
    private Integer scanRequirement;

    // 时间管理
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("business_start_date")
    private Date businessStartDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("business_end_date")
    private Date businessEndDate;

    // 状态管理
    @TableField("status")
    private Integer status;

    // 系统字段（除 BaseEntity 外扩展）
    @TableField("create_dept_fid")
    private String createDeptFid;

    @TableField("confirm_by")
    private String confirmBy;

    @TableField("confirm_dept_fid")
    private String confirmDeptFid;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("confirm_time")
    private Date confirmTime;

    @TableField("del_flag")
    private Integer delFlag;

}
